home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-14 | 1.5 KB | 78 lines | [TEXT/PJMM] |
- unit MyForeBackGround;
-
- interface
-
- const
- def_stack = longInt(24) * 1024;
- def_masters = 10;
-
- var
- foreground_app: boolean;
-
- procedure InitInForeOrBackground (back_stack, fore_stack: longInt; back_masters, fore_masters: integer);
-
- implementation
-
- uses
- {$IFC undefined THINK_Pascal}
- Types, Resources, Fonts, Windows, QuickDraw, Menus, TextEdit, Dialogs, Memory,
- {$ENDC}
- MySizeResource;
-
- {$IFC undefined POWERPC}
- function StackPtr: longInt;
- inline
- $2E8F;
- {$ENDC}
-
- procedure InitInForeOrBackground (back_stack, fore_stack: longInt; back_masters, fore_masters: integer);
- const
- CurApNameA = $910;
- var
- size: sizeRsrc;
- i: integer;
- zero: handle;
- stack, masters : longInt;
- begin
-
- GetSizeResource(size);
- foreground_app := not size.only_background;
-
- { Check if we are running in the environment }
- {$IFC not undefined THINK_Pascal}
- zero := GetResource('ZERO', 0);
- if (zero <> nil) & (HomeResFile(zero) <> CurResFile) then begin
- foreground_app := true;
- end;
- {$ENDC}
-
- {$IFC undefined THINK_Pascal}
- InitGraf(@qd.thePort);
- {$ELSEC}
- InitGraf(@thePort);
- {$ENDC}
- if foreground_app then begin
- InitFonts;
- InitWindows;
- InitMenus;
- TEInit;
- InitDialogs(nil);
- stack := fore_stack;
- masters := fore_masters;
- end else begin
- stack := back_stack;
- masters := back_masters;
- end;
- if stack = 0 then
- stack := def_stack;
- if masters = 0 then
- masters := def_masters;
- {$IFC undefined POWERPC}
- SetApplLimit(ptr(StackPtr - stack));
- {$ENDC}
- MaxApplZone;
- for i := 1 to masters do
- MoreMasters;
- end;
-
- end.